package com.merlin.demo_wellshape.service;

import com.merlin.demo_wellshape.dto.DailyPlanDTO;
import com.merlin.demo_wellshape.dto.ExercisePlanDTO;
import com.merlin.demo_wellshape.pojo.DailyPlan;
import com.merlin.demo_wellshape.pojo.ExercisePlan;
import org.springframework.stereotype.Service;

import java.time.LocalDate;
import java.util.List;

@Service // 将DailyPlanService注入到spring容器中
public interface DailyPlanServiceImpl {
    /**
     * 根据用户id获取所有计划
     *
     * @param userId 用户id
     * @return 计划列表
     */
    List<DailyPlanDTO> getAllPlansByUserId(int userId);

    /**
     * 添加一个计划
     *
     * @param userId    用户id
     * @param planDate  计划日期
     * @param planName  计划名称
     * @param quantity  计划数量
     * @param completed 是否完成
     * @return 添加的计划的信息
     */
    DailyPlan addPlan(int userId, LocalDate planDate, String planName, String quantity, boolean completed);

    /**
     * 更新一个计划
     *
     * @param planId    计划id
     * @param planName  计划名称
     * @param quantity  计划数量
     * @param completed 是否完成
     * @return 更新后的计划信息
     */
    ExercisePlanDTO updatePlan(int planId, String planName, String quantity, boolean completed);

    /**
     * 删除一个计划
     *
     * @param planId 计划id
     */
    void deletePlan(int planId);

    // 将 DailyPlan 转换为 DTO
    DailyPlanDTO convertToDTO(DailyPlan dailyPlan);

    // 将 ExercisePlan 转换为 DTO
    ExercisePlanDTO convertToDTO(ExercisePlan exercisePlan);
}
